home *** CD-ROM | disk | FTP | other *** search
/ GFX Sensations 1 / Graphic Sensations - Volume 1.iso / tools / amiga / 3d_tools / rend10.lzh / REND1.0 / GraphicSubSystem / rasterasm.a < prev    next >
Encoding:
Text File  |  1993-12-16  |  1.8 KB  |  120 lines

  1. ;    raster assembly functions for blitter
  2. ;    operations.
  3.  
  4.     include "INCLUDE:exec/types.i"
  5.     include "INCLUDE:hardware/custom.i"
  6.     include "INCLUDE:hardware/blit.i"
  7.     include "INCLUDE:hardware/dmabits.i"
  8.  
  9.     
  10.     SECTION BLITCLEARMEM,CODE
  11.  
  12.     XREF    _custom
  13.     XDEF    _blitclearmem
  14.     
  15.     
  16. _blitclearmem:
  17.     lea    _custom,a1
  18.     btst    #DMAB_BLTDONE-8,dmaconr(a1)
  19. waitblit1:
  20.     btst    #DMAB_BLTDONE-8,dmaconr(a1)
  21.     bne    waitblit1
  22.     move.l    a0,bltdpt(a1)
  23.     clr.w    bltdmod(a1)
  24.     clr.w    bltcon1(a1)
  25.     move.w    #DEST,bltcon0(a1)
  26.     move.w  d0,bltsize(a1)
  27.     rts
  28.  
  29.  
  30.     SECTION    BLITLINE,CODE
  31.  
  32.     XREF    _custom
  33.     XDEF    _blitline
  34.     
  35.         
  36. _blitline:
  37.     lea    _custom,a1
  38.     sub.w    d0,d2
  39.     bmi    xneg
  40.     sub.w    d1,d3
  41.     bmi    yneg
  42.     cmp.w    d3,d2
  43.     bmi     ygtx
  44.     moveq.l    #OCTANT1+LINEMODE,d5
  45.     bra    lineagain
  46. ygtx:    
  47.     exg    d2,d3
  48.     moveq.l    #OCTANT2+LINEMODE,d5
  49.     bra    lineagain
  50. yneg:
  51.     neg.w    d3
  52.     cmp.w    d3,d2
  53.     bmi    ynygtx
  54.     moveq.l    #OCTANT8+LINEMODE,d5
  55.     bra    lineagain
  56. ynygtx:
  57.     exg    d2,d3
  58.     moveq.l    #OCTANT7+LINEMODE,d5
  59.     bra    lineagain
  60. xneg:
  61.     neg.w    d2
  62.     sub.w    d1,d3
  63.     bmi    xyneg
  64.     cmp.w    d3,d2
  65.     bmi    xnygtx
  66.     moveq.l    #OCTANT4+LINEMODE,d5
  67.     bra    lineagain
  68. xnygtx:
  69.     exg    d2,d3
  70.     moveq.l    #OCTANT3+LINEMODE,d5
  71.     bra    lineagain
  72. xyneg:
  73.     neg.w    d3
  74.     cmp.w    d3,d2
  75.     bmi    xynygtx
  76.     moveq.l    #OCTANT5+LINEMODE,d5
  77.     bra    lineagain
  78. xynygtx:
  79.     exg    d2,d3
  80.     moveq.l    #OCTANT6+LINEMODE,d5
  81. lineagain:
  82.     mulu.w    d4,d1
  83.     ror.l    #4,d0
  84.     add.w    d0,d0
  85.     add.l    d1,a0
  86.     add.w    d0,a0
  87.     swap    d0
  88.     or.w    #$BFA,d0
  89.     lsl.w    #2,d3
  90.     add.w    d2,d2
  91.     move.w    d2,d1
  92.     lsl.w    #5,d1
  93.     add.w    #$42,d1
  94.     btst    #DMAB_BLTDONE-8,dmaconr(a1)
  95. waitblit2:
  96.     btst    #DMAB_BLTDONE-8,dmaconr(a1)
  97.     bne    waitblit2
  98.     move.w    d3,bltbmod(a1)
  99.     sub.w    d2,d3
  100.     ext.l    d3
  101.     move.l    d3,bltapt(a1)
  102.     bpl    lineover
  103.     or.w    #SIGNFLAG,d5
  104. lineover:
  105.     move.w    d0,bltcon0(a1)
  106.     move.w    d5,bltcon1(a1)
  107.     move.w    d4,bltcmod(a1)
  108.     move.w    d4,bltdmod(a1)
  109.     sub.w    d2,d3
  110.     move.w    d3,bltamod(a1)
  111.     move.w    #$8000,bltadat(a1)
  112.     moveq.l    #-1,d5
  113.     move.l    d5,bltafwm(a1)
  114.     move.l    a0,bltcpt(a1)
  115.     move.l    a0,bltdpt(a1)
  116.     move.w    d1,bltsize(a1)
  117.     rts
  118.     end    
  119.     
  120.